#-*- coding: utf-8 -*-

import cartao

class CartaoDeCidadao(cartao.Cartao, list):
	'''
	classe derivada de cartao e de list
	mecanismo de heranca multipla
	'''
	def __init__(self, numero, nome, nif ='9999'):
		cartao.Cartao.__init__(self,numero,nome)
		self.nif=nif
		
	def __str__(self):
		return cartao.Cartao.__str__(self) + ' ' \
			+ str(self.nif) + ' de cidadao'+ ' lista: ' + ' ' + \
			str( [ str ( x ) +  ' ' for x in self])
	pass
	
class CartaoDeCidadaoNovoEstilo(cartao.CartaoNovoEstilo,list):
	'''
	classe derivada de Cartao e de list
	mecanismo de herança multipla
	'''
	def __init__(self,numero, nome, nif='9999'):
		#nas classes de novo estilo temos super()
		super(CartaoDeCidadaoNovoEstilo,self).__init__(numero,nome)
		
		self.nif =nif
	def __str__(self):
		return cartao.CartaoNovoEstilo.__str__(self) + ' ' \
			+ str(self.nif)+ ' de cidadao' + ' lista: '+' ' +\
			str ([str ( x ) + ' ' for x in self])
	pass
	
def teste():
	obj1 = CartaoDeCidadao('898989', 'Manuel Antunes', ' 510417876')
	
	print obj1
	
	obj1.append ( 'obs: sinal na bochecha direita' )
	obj1.append ( 'obs: olhos azuis' )
	
	print obj1
	
	# e como novo e s t i l o
	obj2 = CartaoDeCidadaoNovoEstilo ( '111212' , 'Manuel Silva' , '510417876' )

	obj2.append( 'obs: sinal na bochecha esquerda' )
	obj2.append( 'obs: olhos verdes' )
	print obj2
	pass
teste()	
	
